﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Niknak.Social.Twitter
{
    /// <summary>
    /// Defines a media entitiy retrieved from Twitter
    /// </summary>
    /// <remarks>
    /// Pictures are the only type of media currently supported natively by Twitter.
    /// However, it is likely that videos will be supported in the future.
    /// </remarks>
    public interface IMedia
    {
        /// <summary>
        /// Always the string version of the Int64 value
        /// </summary>
        string MediaId { get; set; }

        /// <summary>
        /// Semi-expanded URL useful for giving a better idea of the destination address
        /// </summary>
        string DisplayUrl { get; set; }
        
        /// <summary>
        /// Full URL
        /// </summary>
        string ExpandedUrl { get; set; }
        
        /// <summary>
        /// Currently only picture
        /// </summary>
        string MediaType { get; set; }
        
        /// <summary>
        /// Direct URL to the media rather than the page on which it is presented
        /// </summary>
        string MediaUrl { get; set; }
        
        /// <summary>
        /// Secure version of MediaUrl
        /// </summary>
        string MediaUrlHttps { get; set; }
        
        /// <summary>
        /// Array of sizes that the media is available at
        /// </summary>
        IMediaSize[] Sizes { get; set; }
        
        /// <summary>
        /// Shortened URL as originally found in the message
        /// </summary>
        string Url { get; set; }
        
        /// <summary>
        /// Currently the same as the message creation date
        /// </summary>
        DateTime CreatedAt { get; set; }
    }
}
